gtk_scrollable_set_hadjustment
gtk_scrollable_get_vadjustment
gtk_scrollable_set_vadjustment
-gtk_scrollable_get_min_display_width
-gtk_scrollable_set_min_display_width
-gtk_scrollable_get_min_display_height
-gtk_scrollable_set_min_display_height
<SUBSECTION Standard>
GtkScrollableIface
gtk_scrolled_window_get_placement
gtk_scrolled_window_get_policy
gtk_scrolled_window_get_shadow_type
+gtk_scrolled_window_get_min_content_width
+gtk_scrolled_window_set_min_content_width
+gtk_scrolled_window_get_min_content_height
+gtk_scrolled_window_set_min_content_height
+GtkScrollablePolicy
+gtk_scrolled_window_get_hscroll_policy
+gtk_scrolled_window_set_hscroll_policy
+gtk_scrolled_window_get_vscroll_policy
+gtk_scrolled_window_set_vscroll_policy
+
<SUBSECTION Standard>
GTK_SCROLLED_WINDOW
GTK_IS_SCROLLED_WINDOW
#if IN_HEADER(__GTK_SCROLLABLE_H__)
#if IN_FILE(__GTK_SCROLLABLE_C__)
-gtk_scrollable_get_hadjustment
gtk_scrollable_get_type G_GNUC_CONST
+gtk_scrollable_get_hadjustment
gtk_scrollable_get_vadjustment
gtk_scrollable_set_hadjustment
gtk_scrollable_set_vadjustment
-gtk_scrollable_get_min_display_width
-gtk_scrollable_set_min_display_width
-gtk_scrollable_get_min_display_height
-gtk_scrollable_set_min_display_height
#endif
#endif
gtk_scrolled_window_set_shadow_type
gtk_scrolled_window_set_vadjustment
gtk_scrolled_window_unset_placement
+gtk_scrolled_window_get_min_content_width
+gtk_scrolled_window_set_min_content_width
+gtk_scrolled_window_get_min_content_height
+gtk_scrolled_window_set_min_content_height
+gtk_scrolled_window_get_hscroll_policy
+gtk_scrolled_window_set_hscroll_policy
+gtk_scrolled_window_get_vscroll_policy
+gtk_scrolled_window_set_vscroll_policy
#endif
#endif
G_END_DECLS
+/**
+ * GtkScrollablePolicy:
+ * @GTK_SCROLL_MINIMUM: Scrollable adjustments are based on the minimum size
+ * @GTK_SCROLL_NATURAL: Scrollable adjustments are based on the natural size
+ *
+ * Defines the policy to be used in a scrollable widget when updating
+ * the scrolled window adjustments in a given orientation.
+ */
+typedef enum
+{
+ GTK_SCROLL_MINIMUM = 0,
+ GTK_SCROLL_NATURAL
+} GtkScrollablePolicy;
+
+
#endif /* __GTK_ENUMS_H__ */
GtkAdjustment *hadjustment;
GtkAdjustment *vadjustment;
- gint min_display_width;
- gint min_display_height;
guint layout_idle_id;
/* For scrollable interface */
PROP_HADJUSTMENT,
- PROP_VADJUSTMENT,
- PROP_MIN_DISPLAY_WIDTH,
- PROP_MIN_DISPLAY_HEIGHT
+ PROP_VADJUSTMENT
};
/* GObject vfuncs */
/* Scrollable interface properties */
g_object_class_override_property (gobject_class, PROP_HADJUSTMENT, "hadjustment");
g_object_class_override_property (gobject_class, PROP_VADJUSTMENT, "vadjustment");
- g_object_class_override_property (gobject_class, PROP_MIN_DISPLAY_WIDTH, "min-display-width");
- g_object_class_override_property (gobject_class, PROP_MIN_DISPLAY_HEIGHT, "min-display-height");
-
/* Style properties */
gtk_widget_class_install_style_property (widget_class,
icon_view->priv->margin = 6;
icon_view->priv->item_padding = 6;
- icon_view->priv->min_display_width = -1;
- icon_view->priv->min_display_height = -1;
-
icon_view->priv->draw_focus = TRUE;
}
case PROP_VADJUSTMENT:
gtk_icon_view_set_vadjustment (icon_view, g_value_get_object (value));
break;
- case PROP_MIN_DISPLAY_WIDTH:
- icon_view->priv->min_display_width = g_value_get_int (value);
- break;
- case PROP_MIN_DISPLAY_HEIGHT:
- icon_view->priv->min_display_height = g_value_get_int (value);
- break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
case PROP_VADJUSTMENT:
g_value_set_object (value, icon_view->priv->vadjustment);
break;
- case PROP_MIN_DISPLAY_WIDTH:
- g_value_set_int (value, icon_view->priv->min_display_width);
- break;
- case PROP_MIN_DISPLAY_HEIGHT:
- g_value_set_int (value, icon_view->priv->min_display_height);
- break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
GtkAdjustment *hadjustment;
GtkAdjustment *vadjustment;
- gint min_display_width;
- gint min_display_height;
/* Properties */
PROP_0,
PROP_HADJUSTMENT,
PROP_VADJUSTMENT,
- PROP_MIN_DISPLAY_WIDTH,
- PROP_MIN_DISPLAY_HEIGHT,
PROP_WIDTH,
PROP_HEIGHT
};
GTK_PARAM_READWRITE));
/* Scrollable interface */
- g_object_class_override_property (gobject_class,
- PROP_HADJUSTMENT,
- "hadjustment");
- g_object_class_override_property (gobject_class,
- PROP_VADJUSTMENT,
- "vadjustment");
- g_object_class_override_property (gobject_class,
- PROP_MIN_DISPLAY_WIDTH,
- "min-display-width");
- g_object_class_override_property (gobject_class,
- PROP_MIN_DISPLAY_HEIGHT,
- "min-display-height");
+ g_object_class_override_property (gobject_class, PROP_HADJUSTMENT, "hadjustment");
+ g_object_class_override_property (gobject_class, PROP_VADJUSTMENT, "vadjustment");
g_object_class_install_property (gobject_class,
PROP_WIDTH,
case PROP_VADJUSTMENT:
g_value_set_object (value, priv->vadjustment);
break;
- case PROP_MIN_DISPLAY_WIDTH:
- g_value_set_int (value, priv->min_display_width);
- break;
- case PROP_MIN_DISPLAY_HEIGHT:
- g_value_set_int (value, priv->min_display_height);
- break;
case PROP_WIDTH:
g_value_set_uint (value, priv->width);
break;
gtk_layout_set_vadjustment (layout,
(GtkAdjustment*) g_value_get_object (value));
break;
- case PROP_MIN_DISPLAY_WIDTH:
- priv->min_display_width = g_value_get_int (value);
- break;
- case PROP_MIN_DISPLAY_HEIGHT:
- priv->min_display_height = g_value_get_int (value);
- break;
case PROP_WIDTH:
gtk_layout_set_size (layout, g_value_get_uint (value),
priv->height);
priv->hadjustment = NULL;
priv->vadjustment = NULL;
- priv->min_display_width = -1;
- priv->min_display_height = -1;
priv->bin_window = NULL;
GTK_TYPE_ADJUSTMENT,
GTK_PARAM_READWRITE | G_PARAM_CONSTRUCT);
g_object_interface_install_property (iface, pspec);
-
-
- /**
- * GtkScrollable:min-display-width:
- *
- * Minimum width to display in the parent scrolled window, this
- * can be greater or less than the scrollable widget's real minimum
- * width.
- *
- * Since: 3.0
- */
- pspec = g_param_spec_int ("min-display-width",
- P_("Minimum Display Width"),
- P_("Minimum width to display in the parent scrolled window"),
- -1, G_MAXINT, -1,
- GTK_PARAM_READWRITE);
- g_object_interface_install_property (iface, pspec);
-
-
- /**
- * GtkScrollable:min-display-height:
- *
- * Minimum height to display in the parent scrolled window, this
- * can be greater or less than the scrollable widget's real minimum
- * height.
- *
- * Since: 3.0
- */
- pspec = g_param_spec_int ("min-display-height",
- P_("Minimum Display Height"),
- P_("Minimum height to display in the parent scrolled window"),
- -1, G_MAXINT, -1,
- GTK_PARAM_READWRITE);
- g_object_interface_install_property (iface, pspec);
-
}
/**
g_object_set (scrollable, "vadjustment", vadjustment, NULL);
}
-
-
-/**
- * gtk_scrollable_get_min_display_width:
- * @scrollable: a #GtkScrollable
- *
- * Retrieves the minimum width of content to display in the
- * parent scrolled window.
- *
- * Return value: The minimum display width.
- *
- * Since: 3.0
- **/
-gint
-gtk_scrollable_get_min_display_width (GtkScrollable *scrollable)
-{
- gint width;
-
- g_return_val_if_fail (GTK_IS_SCROLLABLE (scrollable), 0);
-
- g_object_get (scrollable, "min-display-width", &width, NULL);
-
- return width;
-}
-
-/**
- * gtk_scrollable_set_min_display_width:
- * @scrollable: a #GtkScrollable
- * @width: the minimum width of scrollable content to display
- *
- * Sets the minimum width of content to display in the parent scrolled window,
- * this can be greater or less than the scrollable widget's real minimum
- * width.
- *
- * Since: 3.0
- **/
-void
-gtk_scrollable_set_min_display_width (GtkScrollable *scrollable,
- gint width)
-{
- g_return_if_fail (GTK_IS_SCROLLABLE (scrollable));
-
- g_object_set (scrollable, "min-display-width", width, NULL);
-}
-
-/**
- * gtk_scrollable_get_min_display_height:
- * @scrollable: a #GtkScrollable
- *
- * Retrieves the minimum height of content to display in the
- * parent scrolled window.
- *
- * Return value: The minimum display height.
- *
- * Since: 3.0
- **/
-gint
-gtk_scrollable_get_min_display_height (GtkScrollable *scrollable)
-{
- gint height;
-
- g_return_val_if_fail (GTK_IS_SCROLLABLE (scrollable), 0);
-
- g_object_get (scrollable, "min-display-height", &height, NULL);
-
- return height;
-}
-
-/**
- * gtk_scrollable_set_min_display_height:
- * @scrollable: a #GtkScrollable
- * @height: the minimum height of scrollable content to display
- *
- * Sets the minimum height of content to display in the parent scrolled window,
- * this can be greater or less than the scrollable widget's real minimum
- * height.
- *
- * Since: 3.0
- **/
-void
-gtk_scrollable_set_min_display_height (GtkScrollable *scrollable,
- gint height)
-{
- g_return_if_fail (GTK_IS_SCROLLABLE (scrollable));
-
- g_object_set (scrollable, "min-display-height", height, NULL);
-}
GtkAdjustment *gtk_scrollable_get_vadjustment (GtkScrollable *scrollable);
void gtk_scrollable_set_vadjustment (GtkScrollable *scrollable,
GtkAdjustment *vadjustment);
-gint gtk_scrollable_get_min_display_width (GtkScrollable *scrollable);
-void gtk_scrollable_set_min_display_width (GtkScrollable *scrollable,
- gint width);
-gint gtk_scrollable_get_min_display_height (GtkScrollable *scrollable);
-void gtk_scrollable_set_min_display_height (GtkScrollable *scrollable,
- gint height);
G_END_DECLS
guint vscrollbar_visible : 1;
guint window_placement : 2;
guint focus_out : 1; /* Flag used by ::move-focus-out implementation */
+ guint hscroll_policy : 1;
+ guint vscroll_policy : 1;
+
+ gint min_content_width;
+ gint min_content_height;
};
PROP_VADJUSTMENT,
PROP_HSCROLLBAR_POLICY,
PROP_VSCROLLBAR_POLICY,
+ PROP_HSCROLL_POLICY,
+ PROP_VSCROLL_POLICY,
PROP_WINDOW_PLACEMENT,
PROP_WINDOW_PLACEMENT_SET,
- PROP_SHADOW_TYPE
+ PROP_SHADOW_TYPE,
+ PROP_MIN_CONTENT_WIDTH,
+ PROP_MIN_CONTENT_HEIGHT
};
/* Signals */
DEFAULT_SCROLLBAR_SPACING,
GTK_PARAM_READABLE));
+ g_object_class_install_property (gobject_class,
+ PROP_HSCROLL_POLICY,
+ g_param_spec_enum ("hscroll-policy",
+ P_("Horizontal Scrollable Policy"),
+ P_("How the size of the content should be determined"),
+ GTK_TYPE_SCROLLABLE_POLICY,
+GTK_SCROLL_NATURAL,
+ GTK_PARAM_READWRITE));
+ g_object_class_install_property (gobject_class,
+ PROP_VSCROLL_POLICY,
+ g_param_spec_enum ("vscroll-policy",
+ P_("Vertical Scrollable Policy"),
+ P_("How the size of the content should be determined"),
+ GTK_TYPE_SCROLLABLE_POLICY,
+GTK_SCROLL_NATURAL,
+ GTK_PARAM_READWRITE));
+
+ g_object_class_install_property (gobject_class,
+ PROP_MIN_CONTENT_WIDTH,
+ g_param_spec_int ("min-content-width",
+ P_("Minimum Content Width"),
+ P_("The minimum width that the scrolled window will allocate to its content"),
+ -1, G_MAXINT, -1,
+ GTK_PARAM_READWRITE));
+ g_object_class_install_property (gobject_class,
+ PROP_MIN_CONTENT_HEIGHT,
+ g_param_spec_int ("min-content-height",
+ P_("Minimum Content Height"),
+ P_("The minimum height that the scrolled window will allocate to its content"),
+ -1, G_MAXINT, -1,
+ GTK_PARAM_READWRITE));
/**
* GtkScrolledWindow::scroll-child:
* @scrolled_window: a #GtkScrolledWindow
priv->focus_out = FALSE;
priv->window_placement = GTK_CORNER_TOP_LEFT;
gtk_scrolled_window_update_real_placement (scrolled_window);
+ priv->hscroll_policy = GTK_SCROLL_NATURAL;
+ priv->vscroll_policy = GTK_SCROLL_NATURAL;
+ priv->min_content_width = -1;
+ priv->min_content_height = -1;
}
/**
gtk_scrolled_window_set_shadow_type (scrolled_window,
g_value_get_enum (value));
break;
+ case PROP_HSCROLL_POLICY:
+ gtk_scrolled_window_set_hscroll_policy (scrolled_window,
+ g_value_get_enum (value));
+ break;
+ case PROP_VSCROLL_POLICY:
+ gtk_scrolled_window_set_vscroll_policy (scrolled_window,
+ g_value_get_enum (value));
+ break;
+ case PROP_MIN_CONTENT_WIDTH:
+ gtk_scrolled_window_set_min_content_width (scrolled_window,
+ g_value_get_int (value));
+ break;
+ case PROP_MIN_CONTENT_HEIGHT:
+ gtk_scrolled_window_set_min_content_height (scrolled_window,
+ g_value_get_int (value));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
g_value_set_object (value,
G_OBJECT (gtk_scrolled_window_get_vadjustment (scrolled_window)));
break;
- case PROP_HSCROLLBAR_POLICY:
- g_value_set_enum (value, priv->hscrollbar_policy);
- break;
- case PROP_VSCROLLBAR_POLICY:
- g_value_set_enum (value, priv->vscrollbar_policy);
- break;
case PROP_WINDOW_PLACEMENT:
g_value_set_enum (value, priv->window_placement);
break;
case PROP_SHADOW_TYPE:
g_value_set_enum (value, priv->shadow_type);
break;
+ case PROP_HSCROLLBAR_POLICY:
+ g_value_set_enum (value, priv->hscrollbar_policy);
+ break;
+ case PROP_VSCROLLBAR_POLICY:
+ g_value_set_enum (value, priv->vscrollbar_policy);
+ break;
+ case PROP_HSCROLL_POLICY:
+ g_value_set_enum (value, priv->hscroll_policy);
+ break;
+ case PROP_VSCROLL_POLICY:
+ g_value_set_enum (value, priv->vscroll_policy);
+ break;
+ case PROP_MIN_CONTENT_WIDTH:
+ g_value_set_int (value, priv->min_content_width);
+ break;
+ case PROP_MIN_CONTENT_HEIGHT:
+ g_value_set_int (value, priv->min_content_height);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
else
{
- gint min_display_width =
- gtk_scrollable_get_min_display_width (GTK_SCROLLABLE (child));
+ gint min_content_width = priv->min_content_width;
- if (min_display_width > 0)
+ if (min_content_width >= 0)
{
- minimum_req.width += min_display_width;
- natural_req.width += min_display_width;
+ minimum_req.width = MAX (minimum_req.width, min_content_width);
+ natural_req.width = MAX (natural_req.width, min_content_width);
extra_width = -1;
}
else
}
else
{
- gint min_display_height =
- gtk_scrollable_get_min_display_height (GTK_SCROLLABLE (child));
+ gint min_content_height = priv->min_content_height;
- if (min_display_height > 0)
+ if (min_content_height >= 0)
{
- minimum_req.height += min_display_height;
- natural_req.height += min_display_height;
+ minimum_req.height = MAX (minimum_req.height, min_content_height);
+ natural_req.height = MAX (natural_req.height, min_content_height);
extra_height = -1;
}
else
GTK_WIDGET_GET_CLASS (widget)->get_preferred_width (widget, minimum_width, natural_width);
}
+
+gint
+gtk_scrolled_window_get_min_content_width (GtkScrolledWindow *scrolled_window)
+{
+ g_return_val_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window), 0);
+
+ return scrolled_window->priv->min_content_width;
+}
+
+void
+gtk_scrolled_window_set_min_content_width (GtkScrolledWindow *scrolled_window,
+ gint min_content_width)
+{
+ GtkScrolledWindowPrivate *priv;
+
+ g_return_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window));
+
+ priv = scrolled_window->priv;
+
+ if (priv->min_content_width != min_content_width)
+ {
+ priv->min_content_width = min_content_width;
+
+ gtk_widget_queue_resize (GTK_WIDGET (scrolled_window));
+
+ g_object_notify (G_OBJECT (scrolled_window), "min-content-width");
+ }
+}
+
+gint
+gtk_scrolled_window_get_min_content_height (GtkScrolledWindow *scrolled_window)
+{
+ g_return_val_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window), 0);
+
+ return scrolled_window->priv->min_content_height;
+}
+
+void
+gtk_scrolled_window_set_min_content_height (GtkScrolledWindow *scrolled_window,
+ gint min_content_height)
+{
+ GtkScrolledWindowPrivate *priv;
+
+ g_return_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window));
+
+ priv = scrolled_window->priv;
+
+ if (priv->min_content_height != min_content_height)
+ {
+ priv->min_content_height = min_content_height;
+
+ gtk_widget_queue_resize (GTK_WIDGET (scrolled_window));
+
+ g_object_notify (G_OBJECT (scrolled_window), "min-content-height");
+ }
+}
+
+GtkScrollablePolicy
+gtk_scrolled_window_get_hscroll_policy (GtkScrolledWindow *scrolled_window)
+{
+ g_return_val_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window), 0);
+
+ return scrolled_window->priv->hscroll_policy;
+}
+
+void
+gtk_scrolled_window_set_hscroll_policy (GtkScrolledWindow *scrolled_window,
+ GtkScrollablePolicy policy)
+{
+ GtkScrolledWindowPrivate *priv;
+
+ g_return_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window));
+
+ priv = scrolled_window->priv;
+
+ if (priv->hscroll_policy != policy)
+ {
+ priv->hscroll_policy = policy;
+
+ gtk_widget_queue_resize (GTK_WIDGET (scrolled_window));
+
+ g_object_notify (G_OBJECT (scrolled_window), "hscroll-policy");
+ }
+}
+
+GtkScrollablePolicy
+gtk_scrolled_window_get_vscroll_policy (GtkScrolledWindow *scrolled_window)
+{
+ g_return_val_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window), 0);
+
+ return scrolled_window->priv->vscroll_policy;
+}
+
+void
+gtk_scrolled_window_set_vscroll_policy (GtkScrolledWindow *scrolled_window,
+ GtkScrollablePolicy policy)
+{
+ GtkScrolledWindowPrivate *priv;
+
+ g_return_if_fail (GTK_IS_SCROLLED_WINDOW (scrolled_window));
+
+ priv = scrolled_window->priv;
+
+ if (priv->vscroll_policy != policy)
+ {
+ priv->vscroll_policy = policy;
+
+ gtk_widget_queue_resize (GTK_WIDGET (scrolled_window));
+
+ g_object_notify (G_OBJECT (scrolled_window), "vscroll-policy");
+ }
+}
void gtk_scrolled_window_add_with_viewport (GtkScrolledWindow *scrolled_window,
GtkWidget *child);
+gint gtk_scrolled_window_get_min_content_width (GtkScrolledWindow *scrolled_window);
+void gtk_scrolled_window_set_min_content_width (GtkScrolledWindow *scrolled_window,
+ gint width);
+gint gtk_scrolled_window_get_min_content_height (GtkScrolledWindow *scrolled_window);
+void gtk_scrolled_window_set_min_content_height (GtkScrolledWindow *scrolled_window,
+ gint height);
+GtkScrollablePolicy gtk_scrolled_window_get_hscroll_policy (GtkScrolledWindow *scrolled_window);
+void gtk_scrolled_window_set_hscroll_policy (GtkScrolledWindow *scrolled_window,
+ GtkScrollablePolicy policy);
+GtkScrollablePolicy gtk_scrolled_window_get_vscroll_policy (GtkScrolledWindow *scrolled_window);
+void gtk_scrolled_window_set_vscroll_policy (GtkScrolledWindow *scrolled_window,
+ GtkScrollablePolicy policy);
+
gint _gtk_scrolled_window_get_scrollbar_spacing (GtkScrolledWindow *scrolled_window);
GtkAdjustment *hadjustment;
GtkAdjustment *vadjustment;
- gint min_display_width;
- gint min_display_height;
gint xoffset; /* Offsets between widget coordinates and buffer coordinates */
gint yoffset;
PROP_ACCEPTS_TAB,
PROP_IM_MODULE,
PROP_HADJUSTMENT,
- PROP_VADJUSTMENT,
- PROP_MIN_DISPLAY_WIDTH,
- PROP_MIN_DISPLAY_HEIGHT
+ PROP_VADJUSTMENT
};
static void gtk_text_view_finalize (GObject *object);
/* GtkScrollable interface */
g_object_class_override_property (gobject_class, PROP_HADJUSTMENT, "hadjustment");
g_object_class_override_property (gobject_class, PROP_VADJUSTMENT, "vadjustment");
- g_object_class_override_property (gobject_class, PROP_MIN_DISPLAY_WIDTH, "min-display-width");
- g_object_class_override_property (gobject_class, PROP_MIN_DISPLAY_HEIGHT, "min-display-height");
/*
* Style properties
priv->pending_place_cursor_button = 0;
- priv->min_display_width = -1;
- priv->min_display_height = -1;
-
/* We handle all our own redrawing */
gtk_widget_set_redraw_on_allocate (widget, FALSE);
}
gtk_text_view_set_vadjustment (text_view, g_value_get_object (value));
break;
- case PROP_MIN_DISPLAY_WIDTH:
- priv->min_display_width = g_value_get_int (value);
- break;
-
- case PROP_MIN_DISPLAY_HEIGHT:
- priv->min_display_height = g_value_get_int (value);
- break;
-
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
g_value_set_object (value, priv->vadjustment);
break;
- case PROP_MIN_DISPLAY_WIDTH:
- g_value_set_int (value, priv->min_display_width);
- break;
-
- case PROP_MIN_DISPLAY_HEIGHT:
- g_value_set_int (value, priv->min_display_height);
- break;
-
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
PROP_ORIENTATION,
PROP_TOOLBAR_STYLE,
PROP_HADJUSTMENT,
- PROP_VADJUSTMENT,
- PROP_MIN_DISPLAY_WIDTH,
- PROP_MIN_DISPLAY_HEIGHT
+ PROP_VADJUSTMENT
};
enum
GtkAdjustment *hadjustment;
GtkAdjustment *vadjustment;
- gint min_display_width;
- gint min_display_height;
GtkIconSize icon_size;
gboolean icon_size_set;
palette->priv->orientation = DEFAULT_ORIENTATION;
palette->priv->style = DEFAULT_TOOLBAR_STYLE;
palette->priv->style_set = FALSE;
- palette->priv->min_display_width = -1;
- palette->priv->min_display_height = -1;
palette->priv->text_size_group = gtk_size_group_new (GTK_SIZE_GROUP_BOTH);
}
gtk_tool_palette_set_vadjustment (palette, g_value_get_object (value));
break;
- case PROP_MIN_DISPLAY_WIDTH:
- palette->priv->min_display_width = g_value_get_int (value);
- break;
-
- case PROP_MIN_DISPLAY_HEIGHT:
- palette->priv->min_display_height = g_value_get_int (value);
- break;
-
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
g_value_set_object (value, palette->priv->vadjustment);
break;
- case PROP_MIN_DISPLAY_WIDTH:
- g_value_set_int (value, palette->priv->min_display_width);
- break;
-
- case PROP_MIN_DISPLAY_HEIGHT:
- g_value_set_int (value, palette->priv->min_display_height);
- break;
-
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
g_object_class_override_property (oclass, PROP_HADJUSTMENT, "hadjustment");
g_object_class_override_property (oclass, PROP_VADJUSTMENT, "vadjustment");
- g_object_class_override_property (oclass, PROP_MIN_DISPLAY_WIDTH, "min-display-width");
- g_object_class_override_property (oclass, PROP_MIN_DISPLAY_HEIGHT, "min-display-height");
/**
* GtkToolPalette:icon-size:
PROP_RUBBER_BANDING,
PROP_ENABLE_GRID_LINES,
PROP_ENABLE_TREE_LINES,
- PROP_TOOLTIP_COLUMN,
- PROP_MIN_DISPLAY_WIDTH,
- PROP_MIN_DISPLAY_HEIGHT
+ PROP_TOOLTIP_COLUMN
};
/* object signals */
g_object_class_override_property (o_class, PROP_HADJUSTMENT, "hadjustment");
g_object_class_override_property (o_class, PROP_VADJUSTMENT, "vadjustment");
- g_object_class_override_property (o_class, PROP_MIN_DISPLAY_WIDTH, "min-display-width");
- g_object_class_override_property (o_class, PROP_MIN_DISPLAY_HEIGHT, "min-display-height");
g_object_class_install_property (o_class,
PROP_HEADERS_VISIBLE,
tree_view->priv->event_last_x = -10000;
tree_view->priv->event_last_y = -10000;
-
- tree_view->priv->min_display_width = -1;
- tree_view->priv->min_display_height = -1;
}
\f
case PROP_TOOLTIP_COLUMN:
gtk_tree_view_set_tooltip_column (tree_view, g_value_get_int (value));
break;
- case PROP_MIN_DISPLAY_WIDTH:
- tree_view->priv->min_display_width = g_value_get_int (value);
- break;
- case PROP_MIN_DISPLAY_HEIGHT:
- tree_view->priv->min_display_height = g_value_get_int (value);
- break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
case PROP_TOOLTIP_COLUMN:
g_value_set_int (value, tree_view->priv->tooltip_column);
break;
- case PROP_MIN_DISPLAY_WIDTH:
- g_value_set_int (value, tree_view->priv->min_display_width);
- break;
- case PROP_MIN_DISPLAY_HEIGHT:
- g_value_set_int (value, tree_view->priv->min_display_height);
- break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
*/
#include "config.h"
+
+#undef GTK_DISABLE_DEPRECATED
+#include "gtkviewport.h"
+#define GTK_DISABLE_DEPRECATED
#include "gtkintl.h"
#include "gtkmarshalers.h"
#include "gtktypeutils.h"
#include "gtkscrollable.h"
-#undef GTK_DISABLE_DEPRECATED
-#include "gtkviewport.h"
-#define GTK_DISABLE_DEPRECATED
#include "gtkprivate.h"
{
GtkAdjustment *hadjustment;
GtkAdjustment *vadjustment;
- gint min_display_width;
- gint min_display_height;
GtkShadowType shadow_type;
GdkWindow *bin_window;
container_class->add = gtk_viewport_add;
/* GtkScrollable implementation */
- g_object_class_override_property (gobject_class,
- PROP_HADJUSTMENT,
- "hadjustment");
- g_object_class_override_property (gobject_class,
- PROP_VADJUSTMENT,
- "vadjustment");
- g_object_class_override_property (gobject_class,
- PROP_MIN_DISPLAY_WIDTH,
- "min-display-width");
- g_object_class_override_property (gobject_class,
- PROP_MIN_DISPLAY_HEIGHT,
- "min-display-height");
+ g_object_class_override_property (gobject_class, PROP_HADJUSTMENT, "hadjustment");
+ g_object_class_override_property (gobject_class, PROP_VADJUSTMENT, "vadjustment");
g_object_class_install_property (gobject_class,
PROP_SHADOW_TYPE,
case PROP_VADJUSTMENT:
gtk_viewport_set_vadjustment (viewport, g_value_get_object (value));
break;
- case PROP_MIN_DISPLAY_WIDTH:
- viewport->priv->min_display_width = g_value_get_int (value);
- break;
- case PROP_MIN_DISPLAY_HEIGHT:
- viewport->priv->min_display_height = g_value_get_int (value);
- break;
case PROP_SHADOW_TYPE:
gtk_viewport_set_shadow_type (viewport, g_value_get_enum (value));
break;
case PROP_VADJUSTMENT:
g_value_set_object (value, priv->vadjustment);
break;
- case PROP_MIN_DISPLAY_WIDTH:
- g_value_set_int (value, priv->min_display_width);
- break;
- case PROP_MIN_DISPLAY_HEIGHT:
- g_value_set_int (value, priv->min_display_height);
- break;
case PROP_SHADOW_TYPE:
g_value_set_enum (value, priv->shadow_type);
break;
priv->bin_window = NULL;
priv->hadjustment = NULL;
priv->vadjustment = NULL;
- priv->min_display_width = -1;
- priv->min_display_height = -1;
}
/**
GTK_WIDGET_CLASS (gtk_viewport_parent_class)->destroy (widget);
}
+static void
+viewport_get_view_allocation (GtkViewport *viewport,
+ GtkAllocation *view_allocation)
+{
+ GtkViewportPrivate *priv = viewport->priv;
+ GtkStyle *style;
+ GtkWidget *widget = GTK_WIDGET (viewport);
+ GtkAllocation allocation;
+ guint border_width;
+
+ gtk_widget_get_allocation (widget, &allocation);
+ border_width = gtk_container_get_border_width (GTK_CONTAINER (viewport));
+
+ view_allocation->x = 0;
+ view_allocation->y = 0;
+
+ if (priv->shadow_type != GTK_SHADOW_NONE)
+ {
+ style = gtk_widget_get_style (widget);
+ view_allocation->x = style->xthickness;
+ view_allocation->y = style->ythickness;
+ }
+
+ view_allocation->width = MAX (1, allocation.width - view_allocation->x * 2 - border_width * 2);
+ view_allocation->height = MAX (1, allocation.height - view_allocation->y * 2 - border_width * 2);
+}
+
+static void
+viewport_reclamp_adjustment (GtkAdjustment *adjustment,
+ gboolean *value_changed)
+{
+ gdouble value = adjustment->value;
+
+ value = CLAMP (value, 0, adjustment->upper - adjustment->page_size);
+ if (value != adjustment->value)
+ {
+ adjustment->value = value;
+ if (value_changed)
+ *value_changed = TRUE;
+ }
+ else if (value_changed)
+ *value_changed = FALSE;
+}
+
/**
* gtk_viewport_get_hadjustment:
* @viewport: a #GtkViewport.
return priv->vadjustment;
}
-static void
-viewport_get_view_allocation (GtkViewport *viewport,
- GtkAllocation *view_allocation)
-{
- GtkViewportPrivate *priv = viewport->priv;
- GtkStyle *style;
- GtkWidget *widget = GTK_WIDGET (viewport);
- GtkAllocation allocation;
- guint border_width;
-
- gtk_widget_get_allocation (widget, &allocation);
- border_width = gtk_container_get_border_width (GTK_CONTAINER (viewport));
-
- view_allocation->x = 0;
- view_allocation->y = 0;
-
- if (priv->shadow_type != GTK_SHADOW_NONE)
- {
- style = gtk_widget_get_style (widget);
- view_allocation->x = style->xthickness;
- view_allocation->y = style->ythickness;
- }
-
- view_allocation->width = MAX (1, allocation.width - view_allocation->x * 2 - border_width * 2);
- view_allocation->height = MAX (1, allocation.height - view_allocation->y * 2 - border_width * 2);
-}
-
-static void
-viewport_reclamp_adjustment (GtkAdjustment *adjustment,
- gboolean *value_changed)
-{
- gdouble value = adjustment->value;
-
- value = CLAMP (value, 0, adjustment->upper - adjustment->page_size);
- if (value != adjustment->value)
- {
- adjustment->value = value;
- if (value_changed)
- *value_changed = TRUE;
- }
- else if (value_changed)
- *value_changed = FALSE;
-}
-
static void
viewport_set_hadjustment_values (GtkViewport *viewport,
gboolean *value_changed)
fixture->tree_view = gtk_tree_view_new_with_model (model);
g_object_unref (model);
- gtk_scrollable_set_min_display_width (GTK_SCROLLABLE (fixture->tree_view), VIEW_WIDTH);
- gtk_scrollable_set_min_display_height (GTK_SCROLLABLE (fixture->tree_view), VIEW_HEIGHT);
+ gtk_scrolled_window_set_min_content_width (GTK_SCROLLED_WINDOW (sw), VIEW_WIDTH);
+ gtk_scrolled_window_set_min_content_height (GTK_SCROLLED_WINDOW (sw), VIEW_HEIGHT);
gtk_widget_set_size_request (fixture->tree_view, VIEW_WIDTH, VIEW_HEIGHT);
renderer = gtk_cell_renderer_text_new ();